package com.lml.interviewTest;

import org.junit.jupiter.api.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author luomingliang
 * @date 2021/7/14 20:06
 */
public class Test03 {

    public static void main(String[] args) {
    }


    /**
     * 按目录层级输出文件名称
     *
     * @param path  目录文件路径
     * @param map   装入集合
     * @param level 层级
     */
    public static void printFilePath(String path, Map<Integer, List<File>> map, int level) {
        File file = new File(path);
        File[] files = file.listFiles();
        List<File> list = map.get(level);
        for (File file1 : files) {
            if (file1.isFile()) {
                if (list == null || list.isEmpty()) {
                    list = new ArrayList<>();
                }
                list.add(file1);
                map.put(level, list);
            } else {
                printFilePath(file1.getAbsolutePath(), map, level + 1);
            }
        }
    }

    @Test
    public void test01() {
        String path = "D:\\桌面\\temp";
        Map<Integer, List<File>> map = new HashMap<>();
        printFilePath(path, map, 0);
        for (Map.Entry<Integer, List<File>> entry : map.entrySet()) {
            entry.getValue().forEach(x -> System.out.println(entry.getKey() + " , " + x));
        }
    }

    @Test
    public void test02() {

    }


    /**
     * 在一个二叉树结构中，其中每个节点都存有一个数值，需要从底部开始，把每个子节点的数值累加到父节点的数值上。
     * 请写一段程序完成此功能
     */
    public void addBinaryTreeNodeValue(BinaryTreeNode node) {
        if (node == null) return;

    }

    @Test
    public void test03() {

    }
}